package com.weblog.article.dao;

import com.weblog.model.article.Comment;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.NoRepositoryBean;

import java.util.List;

/**
 * comment数据访问接口
 * @author Administrator
 *
 */
public interface CommentDao extends MongoRepository<Comment,String>{

    /**
     * 根据内容模糊查询,根据创建时间降序排列
     * @param content
     * @return
     */
    Page<Comment> findByStateEqualsAndContentLikeOrderByCreatetimeDesc(String state, String content, Pageable pageable);

    /**
     * 查询热门评论（点赞排名前20）
     * @return
     */
    Page<Comment> findTop20ByStateOrderByThumbupDesc(String state, Pageable pageable);

    /**
     * 条件为空时根据状态分页查询
     * @param state
     * @param pageable
     * @return
     */
    Page<Comment> findByStateOrderByCreatetimeDesc(String state, Pageable pageable);

    /**
     * 查询某个评论的下一级评论(后台)
     * @param parentid 为下一级评论的parentid，当前待查询评论的id
     * @return
     */
    List<Comment> findCommentsByParentid(String parentid);
    /**
     * 查询某个评论的下一级评论(前台)
     * @param parentid 为下一级评论的parentid，当前待查询评论的id
     * @return
     */
    List<Comment> findCommentsByParentidAndStateOrderByCreatetimeDesc(String parentid,String state);

}
